Bluetooth low energy location system and method

ABSTRACT

A BLE location system and method are disclosed. The BLE system may provide accurate location of a BLE enabled object in a three dimensional space. The three dimensional space may be a building and the BLE system and method permits accurate location at a room, bay, and bed level in the three dimensional space to be determined. In some embodiments, the BLE system may determine if a BLE enabled object crosses a boundary and the boundary may be, for example, a boundary to a room, such as a door, a boundary to a space, such as a hallway or meeting area, or a boundary to a particular location identified by set of coordinates (X,Y or X,Y,Z for example). The determination of the boundary crossing of the BLE enabled object or the location of the BLE enabled object may be used for staff and patient locating and their associated workflows as well as high accuracy asset tracking in a hospital embodiment.

PRIORITY CLAIMS/RELATED APPLICATIONS

This application claims priority under 35 USC 120 and is a continuationof U.S. patent application Ser. No. 14/679,501, filed Apr. 6, 2015 andentitled “BLUETOOTH LOW ENERGY LOCATION SYSTEM AND METHOD”, the entiretyof which is incorporated herein by reference.

FIELD

The disclosure relates generally to a system and method for performinglocation determination using the BlueTooth Low Energy protocol.

BACKGROUND

BlueTooth Low Energy (aka BLE) is a low energy variant of the BlueToothshort range wireless standard that was introduced as part of theBlueTooth 4.0 specification. Further details about BLE and the Bluetooth4.0 specification may be found athttps://www.bluetooth.org/en-us/specification/adopted-specifications andhttps://developer.bluetooth.org/TechnologyOverview/Pages/BLE.aspx whichare incorporated herein by reference. The purpose of BLE is to providean extremely low power wireless system similar in power consumption toZigbee. Zigbee is an older wireless low power communication standard.

Shortly after the introduction of BLE chipsets, Apple® introduced aproduct called iBeacon along with a simple protocol specification, allbased on BLE. Further details of the iBeacon product and its protocolspecification may be found at https://developer.apple.com/ibeacon/ whichis incorporated herein by reference. iBeacon provides a BLE beacon(transmit only) that devices (e.g. cell phones) may receive and use todetermine a rough location. The location technology is simple proximitybased on the RSSI (received signal strength indication) of the beacon asseen by the receiving device.

Due to the significant impact of a complex indoor environment to theradio frequency (RF) signal propagation path such as obstruction,multiple-path, fading etc., the received signal strength (RSSI) ishighly volatile and only loosely correlated to the distance between thetransmitter and the receiver. Therefore, the location technology mustcreate methods to detect and minimize the noises, and combine withadditional information to intelligently determine the location of anobject in the complex indoor environment.

The usage of the BLE system can vary from simple Way Finding applicationto more complicated enterprise wide asset tracking, to tracking criticalpatient/staff workflow process. Each of these applications could havedifferent BLE deployment scheme and combination of the schemes. Inaddition, depending on the applications, the ideal location engineprocessing needs to be on an end device such as a smartphone or a tag,or can be on a cauterized place such as an appliance or in the cloud.The architecture flexible and variety require the location technology tobe dynamic and flexible enough to accommodate all the usage scenarios.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example of a BLE based real time location system;

FIG. 2 illustrates another example of an implementation of a BLE basedreal time location system;

FIGS. 3A and 3B illustrate more details of the location engine that ispart of the system shown in FIGS. 1-2;

FIG. 4 illustrates an example of an RSSI stabilization method that maybe executed by the location engine;

FIGS. 5A and 5B illustrate two signals before and after RSSIstabilization such as using the method in FIG. 4;

FIG. 6 illustrates an example of a floor selection process that may beexecuted by the location engine;

FIG. 7 illustrates an example of a way finding process that may beexecuted by the location engine;

FIG. 8 illustrates an example a real time location service method thatmay be executed by the location engine;

FIGS. 9A and 9B illustrate examples of a trilateration location processand a bilateration location process that may be executed by the locationengine;

FIG. 10 illustrates an example a zone process that may be executed bythe location engine;

FIG. 11 illustrates an example of a room entry qualification processthat may be executed by the location engine;

FIG. 12 illustrates a bay/bed layout in a building;

FIG. 13 illustrates an example of a bay/bed location method that may beexecuted by the location engine;

FIG. 14 illustrates an example of an arbitration and switching processthat may be executed by the location engine; and

FIG. 15 illustrates an example of a context-aware module that may bepart of the location engine.

DETAILED DESCRIPTION OF ONE OR MORE EMBODIMENTS

The disclosure is particularly applicable to a BLE based location systemand method and it is in this context that the disclosure will bedescribed. It should be appreciated that the BLE system and method maybe used as a standalone system as shown in the diagrams below or it maybe combined with various known real time location system (RTLS) that mayuse different technologies. The BLE system may provide accurate locationof a BLE enabled object in a three dimensional space. The threedimensional space may be a building and the BLE system and methodpermits accurate location at a room, bay, and bed level in the threedimensional space to be determined. In some embodiments, the BLE systemmay determine if a BLE enabled object crosses a boundary and theboundary may be, for example, a boundary to a room, such as a door, aboundary to a space, such as a hallway or meeting area, or a boundary toa particular location identified by set of coordinates (X,Y or X,Y,Z forexample). The determination of the boundary crossing of the BLE enabledobject or the location of the BLE enabled object may be used for staffand patient locating and their associated workflows as well as highaccuracy asset tracking in a hospital embodiment.

The BLE enabled object described below may be any object (including ahuman being) that has a BLE receiver device (or has a BLE receiverassociated with the human being) that is able to sense BLE messages. Forexample, each BLE enabled object may be a smartphone device with a BLEreceiver (or an attached BLE receiver), a BLE tag, a medical deviceincluding various medical equipment with a BLE receiver (or an attachedBLE receiver), other computing devices, such as laptop or tabletcomputers, that have a BLE receiver (or an attached BLE receiver), othercommunication devices, such as cellular phones, that have a BLE receiver(or an attached BLE receiver) and/or physical assets in the threedimensional space, such as a bed, medical personnel, such as a doctor ora nurse, etc. that have a BLE receiver (or an attached BLE receiver).

The BLE system and method may have an Input Stabilization process tostabilize and standardize different Awarepoint beacons (Omni, direction,and special purpose beacons) and iBeacon messages and a floor selectionprocess to decide which floor the BLE enabled object is on in amulti-floor indoor building environment. The BLE system and method alsomay have set of core location processes targeted at different deploymentand usage scenarios. These scenarios may include but are not limited toWay Finding, RTLS, Zone, and Fast Room Entry. The expansion of thesemethods to address other usage scenarios can be easily accomplished byadding to the core location modules. The system and method also may havean arbitration and switching module automatically decides which locationresult to output. The system and method may also have a context-awarelocation module that integrates the location inputs from variouslocation technologies; utilizing context-aware information such asdevice/role, location, and application to minimize the location errorand enhance the response time. It also creates a feedback channel forapplication specific inputs. In the system all modules are input drivenand can also be plugged in and out without depending on the computationplatform requirement. For example, the simple Way Finding smartphone appcan deploy a portion of the algorithm. On the other hand, the entirealgorithm stack can be deployed on the smartphone and only Way Findingalgorithm is running if there are only Way Finding inputs.

In the system, the location engine may be on a remote computer systemfrom the BLE enabled object and the BLE enabled object may communicatevia Wi-Fi or other wireless technology with the location engine.Alternatively, the location engine (and its location method) may beresident on the BLE enabled object that has the memory and processingpower to perform the location method. For example, if the BLE enabledobject is a smartphone device, such as an Apple® iPhone® or Android® OSbased device, the location engine may be executed by the processor ofthe BLE enabled object. Regardless of the location of the locationengine, the location engine executes the location methods.

FIG. 1 illustrates an example of a real time location system 100 thatmay include the location engine with the location component. The system100 has one or more wireless access points 102, such as AP 102A, . . . ,102N as shown in FIG. 1, that may be coupled over a network 109 to alocation engine 106. In one embodiment, each wireless access point maycommunicate using a known Wi-Fi protocol, but the wireless access pointmay also use other wireless communication protocols. The system may alsohave one or more Bluetooth Low Energy (BLE) beacons 104, such as beacon104A, . . . , 104N as shown in FIG. 1, and each BLE beacon may be at afixed location in the three dimensional space and that location is knownby the location engine 106. For example, the system may have at leastone BLE beacon at each side of a boundary and then be able to perform aroom entry determination based on the signals from the at least two BLEbeacons. The BLE beacons 104 may include BLE beacons with directionalantennas (at each boundary), BLE beacons with omnidirectional antennasand BLE beacons that transmit an Awareware Corporation protocol signal.

As shown in FIG. 1, some beacons 104N may be physically located adjacentan access point 102N. The system may also have one or more BLE enabledobjects 108 whose accurate location and boundary crossing may bedetermined by location engine 106. Each BLE beacon 104 may periodicallyor continuously transmit a BLE messages that may be sensed by a BLEenabled object 108. The BLE enabled object 108 may generate one or morecharacteristics of the one or more BLE beacon signal(s) and thencommunicate the one or more characteristics of the BLE beacon signal(s)to the location engine 106 over the network 109 using the AP 102N. Thelocation engine may generate a determination, based on the one or morecharacteristics of the BLE beacon signal(s), of the location of the BLEenabled object that received the BLE beacon signals.

FIG. 2 illustrates another example of an implementation of a real timelocation system 200 that may include the location engine implementingthe location method. As with the implementation shown in FIG. 1, thesystem has the one or more BLE beacons 104, one or more BLE enabledobjects 108 (shown as a smartphone and a BLE tag) and the network 109that has one or more access points 102. In this implementation as shownin FIG. 2, the location engine 106 may be remotely located from some ofthe one or more BLE enabled objects 108 and may be resident on at leastone of the BLE enabled objects 108. In this implementation, the remotelocation engine 108 may be resident and operating on a hardwareappliance 202 that may also be coupled to the network 109 and able tocommunicate over that network. For example, the location engine on thehardware appliance may receive BLE beacon data reports from the one ormore BLE enabled objects 108 over the network 109 that may be a Wi-Finetwork or other network. The location engines 106 operate in a similarmanner as described above in FIG. 1 and also as described in more detailbelow. In this implementation, the location engine 106 on the appliance202 may communicate data about BLE enabled object location (or boundarycrossing), coordinates of the one or more BLE enabled objects 108 on amap and/or a room/region of the one or more BLE enabled objects 108 inthe three dimensional space to other locations applications and agraphical user interface 204.

In both of the implementations in FIGS. 1 and 2, the system 100, 200 maybe installed in a three dimensional space. The three dimensional spacemay be a building (single floor or multiple floors) in which theoccupant of the building wants to track BLE enabled objects within thethree dimensional space. For example, the above described system may beused for a hospital, a manufacturing facility or other building in whichit would be desirable to track BLE enabled objects within the buildingand determine boundary crossings or location of the BLE enabled objectswithin the building.

FIGS. 3A and 3B illustrate more details of the location engine 106 thatis part of the system shown in FIGS. 1-2. The location engine may bepart of a BLE enabled object that has sufficient processing power, etc.to perform the locations methods described below and/or the locationengine 106 may be part of a hardware appliance that is remote from theBLE enabled objects. The location engine 106 and its components shown inFIGS. 3A and 3B may be implemented in software or in hardware. When thelocation engine 106 and its components shown in FIGS. 3A and 3B areimplemented in software, the location engine may have a plurality oflines of computer code that may be stored in a memory and then executedby a processor(s) of the BLE enabled object or the appliance so that theprocessor is configured to perform the operations of the location engineand its components. When the location engine 106 and its componentsshown in FIGS. 3A and 3B are implemented in hardware, the locationengine and its components may be a hardware device (such as anapplication specific integrated circuit, programmable logic device) thatperforms the operations of the location engine and its components. FIG.3A illustrates an example of a software implemented location engine andcomponents.

The location engine 106 may comprises one or more applications 106A, asmoothing component 106B, a locations process component 106C, an inputstabilization component 106D and one or more hardware components 106E onwhich the other components may be executed. For example, the one or morehardware components 106E may include one or more processors, one or morememories, persistent storage, wireless communication circuits to be ableto interact with each BLE enabled object. As shown in FIG. 3B, signalsfrom the beacons that are received by a BLE enabled object may be fed bythe BLE enabled object into the input stabilization 106D thatstabilizes/smoothes the signals as described below. The smoothed signalsmay be fed into a floor selection component 106G that determines, basedon the signals from the beacons received by the BLE enabled object, afloor of the building on which the BLE enabled object may be located.

The signals may then be fed into one or more different location methods,such as a way finding method 106C1, a RTLS method 106C2, a zone method106C3, a fast room entry method 106C4 and a bed/bay location method. Thelocation results from the different location methods may be fed into anarbitration and switching component 106F that selects the appropriatelocation result for the particular use. The output is a raw locationdecision that may be fed into the content-aware smoothing component 106Bthat uses various other data (described below) to reduce errors in thelocation result. The content-aware smoothing component 106B may output afinal location decision that may be fed into one or more of theapplications 106A that run on top of the location determination. Asshown in FIG. 3B, the applications may include a way finder application106A1 that allows a patient, family member or visitor to find their wayaround inside a building such as a hospital, an asset trackingapplication 106A2 that allows a staff at a hospital to track and find anasset, an egress application 106A3 that allows staff to detect an assetgoing out of a door or patent elopement and a staff/patient application106A4 for ED/operating room (OR) workflow tracking or milestoneauto-enter for staff and patients.

FIG. 4 illustrates an example of an RSSI stabilization method 400 thatmay be executed by the location engine and FIGS. 5A and 5B illustratetwo signals before and after RSSI stabilization such as using the methodin FIG. 4. The received BLE RSSI is highly volatile and must bestabilized/smoothed to be useful in the distance or associationcalculation. Thus, the process shown in FIG. 4 may be performed for eachsignal from the BLE enabled object for each beacon. The method mayinclude a sub-second RSSI consolidation step (402) that has twopurposes: 1) standardize fast (sub-1 s beacon rate) and slow (1 sbeacon) beacons to the standard interval; 2) provide initial smoothingof fast beacons. An outlier detection process 404 may be used to detectany RSSI deemed to be outlier and the outlier(s) are removed from thecalculation (406). The final smoothing is calculated on moving windows(408) to generate stabilized RSSI. There are many possible techniquesthat can be used in the moving window smoothing. These techniquesinclude but are not limited to equal or non-equal weighted movingaverages, median, maximal, minimal, or mode values. These smoothingtechniques are also combined with outlier removal to achieve the optimalresult. As shown in FIGS. 5A and 5B, an example of RSSI Stabilization(before and after on the received RSSI time series) are shown. Noticethe RSSI showed in upper blue curve shows much clear separation afterthe stabilization.

FIG. 6 illustrates an example of a floor selection process 600 that maybe executed by the location engine. As the BLE signals penetrates theceiling and wall structures, the beacons from adjacent floors will beheard by the BLE enabled objects. In addition, the number of beaconsheard from the adjacent floors might exceed the number from the currentfloor depending on the density of the beacons deployed on adjacentfloors. Therefore, the correct selection of the floor is required tolocate the BLE enabled object on the correct floor. In the floordetermination method, the received beacon signals may be classified(602) based on what floor they are located on and what type of beacon(omni, directional, ibeacon, or Special purpose) based on the receivedsignal. The method may then perform feature extraction (604) and themethod attempts to determine the most likely floor the BLE enabledobject is on based on the comparison of these features using variety offactors. These factors include but not limited to number of beaconsheard on each floor (604A), the signal strength (604C) and type of thebeacons heard (604B); the characteristic of the floor (e.g. density andgeometry of the beacons and heard beacons); also the BLE enabled objecttype (asset, patient, staff), status (in-motion or out of motion) andprevious locations (e.g. same or different floor, near or far fromexit/elevator). Thus, the method then determines the floor selection forthe particular BLE enabled object (606). For example, criteria 1 mayselect the floor with the highest average RSSI of the strongest 3beacons heard; criteria 2 may select floor with the highest RSSI heard;criteria 3 may select the floor with the smallest area of the strongest3 beacons covers and criteria 4 may indicate not changing floor when thetag is out of motion

FIG. 7 illustrates an example of a way finding process 700 that may beexecuted by the location engine. The Way Finding method is designed tooutput location information to Way Finding application to navigateinside and outside a building. Note the location information does notinclude features such as orientation, destination recognition, routeplanning, decision, and monitoring etc. However, it does includetechniques to avoid reporting past or wrong turn locations. In themethod, a Proximity Detection (702) locates the closest Way FindingBeacon among all the beacons. To avoid the errors introduced by noise ormissed beacon etc, a proximity confidence level is calculated (704). Theproximity confidence level may be calculated based on factors such asthe differentials of strongest RSSI with relate to remain RSSI, numberof RSSI received vs. anticipated, the geometry or distribution of thereceived RSSIs etc. If there is enough confidence (706), a Way Findinglocation is output. Otherwise, the location is not passed onto nextstep. This is to minimize any location errors such as false wrong turn,or hopping to nearby/previous locations. For example, if the strongest 2beacon RSSIs are less than a threshold (e.g. a couple of dB) of eachother, then it is not clear which beacon the BLE enabled object iscloser to. In that case, the previous location is used.

FIG. 8 illustrates an example a real time location service method 800that may be executed by the location engine and FIGS. 9A and 9Billustrate examples of a trilateration location process and abilateration location process that may be executed by the locationengine. The RTLS method 800 is designed to locate a BLE enabled objectsuch as an asset in an area within 30 seconds and 1-3 meter accuracy. Inthe method, the received signals from the beacons may be converted intoestimated distance (802) based on beacon information (e.g. type ofbeacons, location of the beacons, environment). The techniques used toconvert RSSI to distance include but not limited to path loss function,finger printing etc. The goal of the RSSI to distance conversion is toproduce the optimal distance estimate given the received RSSI. Once thereceiver distance from each beacon is estimated, a geometric calculation804-812 may be performed to obtain the best location estimate. As shown,the method may determine the number of beacons heard by the BLE enabledobject and use different methods to determine location. For example, ifonly one beacon signal is available, a proximity process 806 may be usedto determine the location of the BLE enabled object. If two beaconsignals are received by the BLE enabled object, a bilateration process810 may be used and more than two beacon signals are received by the BLEenabled object, a trilateration process 808 may be used.

FIGS. 9A and 9B illustrate examples of Trilateration and Bilateration.Are area 900 represents the possible location estimate area. There aretwo steps in the process. The first step is to determine the most likelyarea (900) in which the BLE enabled object may be located. Then thesecond step is to determine a point inside the most likely area toproduce a single location estimate. The techniques used to determine thebest location estimate include but not limited to center of mass,boundary points, clustering algorithms such as DB scan, k-means, etc.

FIG. 10 illustrates an example a zone process 1000 that may be executedby the location engine. The Zone method is designed to recognize whethera BLE enabled object is located in a zone location within a specifictime period. These time periods may be typically much shorter thannormal RTLS requirement. These zone locations are significant areas forthe use case, typically include areas such as choke point, egress/exit,patient discharge, or linen chute. There are typically two types ofzones: boundary and proximity defined. The proximity defined zonedetermination (1006) utilizes the omni or directional beacon todetermine whether the location is inside the zone. The boundary definedzone determination (1004) may utilize boundary information defined bythe directional beacons.

In the zone process described above, there are different ways todetermine a zone. For example, one way is just like the bed/bayscenario, putting opposite directional beacons on the boundary to definethe boundary. Once the boundaries are defined, the zone is defined. Thesecond way to define zone is to use the omni-direction beacon and usethe RSSI threshold to define the close area covered by the beacon.Therefore, the zone is defined in the zone process.

FIG. 11 illustrates an example of a room entry qualification process1100 that may be executed by the location engine. The Fast Room EntryAlgorithm is designed to detect staff and patient locations and theirassociated workflow as well as high accuracy asset tracking. The roomentry and exit detection latency is typically sub 3 seconds with highaccuracy (>=99%). The method performs a room entry qualification (1102)that calculates how probable the BLE enabled object is near the roomboundary and is attempting a room boundary transition (enter/exit) asopposed to being located somewhere far away. For the probability, theprocess may use a first criteria that may be an RSSI strength betweendirectional and omni-direction beacons. A second criteria may behypothesis based and may determine if the received RSSIs match thepattern that the BLE enabled object is located in the RTLS area, ormatches the pattern that the BLE enabled object is located in the fastroom entry area?

If the criteria are met, the room entry calculation may be performed.Since the directional beacons are deployed along the boundaries ofrooms, the loudest beacon is detected (1104) and represents the mostlikely area that the BLE enabled object is entering. The loudest beaconmay be determined based on the signals received from the beacons by theBLE enabled object. However, the location transition only occurs whenthe confidence threshold is exceeded (1108). The confidence levelcalculation (1106) includes many factors. These factors include but notlimited to differential signal strength of the loudest beacon withregard to the remaining beacons, is the beacon signal strength supportthe room boundary transition event, where the receiver was and if thetransition is logical based on previous location and the currentestimate with regard to the room/hallway layout etc. For example, if theloudest RSSI exceeds the second loudest RSSI by a predetermined marginof, for example a couple of dB, the threshold is met.

FIG. 12 illustrates a bay/bed layout in a building and FIG. 13illustrates an example of a bay/bed location method 1300 that may beexecuted by the location engine. The Bed/Bay method is designed todetect asset, staff and patient locating in a sub room configuration.These sub room configurations include but not limited to scenarios suchas multiple beds inside a patient room (e.g. double patient rooms),multiple beds inside a function area (e.g. Post-Anesthesia Care Unit(PACU)), multiple beds inside a hallway (e.g. hallway beds), multiplechairs inside a triage area. In these scenarios, there is no physicalwall separating the beds and the areas surround the beds are typicallysmall (e.g. 6-8 feet apart).

FIG. 12 shows a Bed/Bay Beacon Deployment Illustration. The directionalbeacons may be paired between beds/bays and hallway to createseparation. The directional beacons are also required to create endcaps.Notice that for each bed/bay, there are 3 directional beacons used tocreate boundaries. The fourth boundary is wall in the illustration.However, in the case the fourth boundary is required (for example, backto back bed/bays sharing the wall), a paired beacons are required todefine the fourth boundary. In this application, the directional beaconsmounted on either side of each boundary having a weaker side of theradiated energy pattern due to the directional antenna pointed into theboundary area and the strong side of the radiated energy pattern due tothe directional antenna pointed away from the boundary. The differencebetween the strong signal and the weak signal may be 20 dB that can beidentified by the system.

In the method 1300, since there are 3 or 4 directional beacons pointinginward towards a bed/bay, the method requires the majority of the insidebeacons (1302, 1304) to be in the top 3 strongest beacons in order toconfirm the signal strength before the bed/bay location is confirmed.This is used to eliminate the impact of the noises from othersurrounding beacons. For a hallway, the criterion is further tightenedto minimize the bay/bed to hallway hopping. If the top two strongestbeacons belong to the hallway (1306), then the method outputs thehallway location. For example, say B1-1, B1-2, B1-3 beacons are in bay1; B2-1, B2-2, B2-3 beacons are in bay 2, and D, E are in hallway. Ifthe loudest 3 beacons are B1-1, B2-1, B1-3, then the Bay 1 is thelocation. If the loudest 2 beacons are D, E, then hallway is thelocation.

FIG. 14 illustrates an example of an arbitration and switching process1400 that may be executed by the location engine. The Arbitration andSwitching method is designed to provide a single location output in theevent the four CORE location methods outputting different locationoutputs. For example, when both RTLS and Fast Room Entry give outlocation but the locations are different, the location method shoulddetermine and have a single location output. This is particular importon an enterprise wide deployment with multiple intended applications.

In the method, there can be a pre-defined sequence to decide whatlocation output to use (1402-1406). However, it can also be dynamic andbased on the confidence level of each algorithm to select the finaloutput. For example, the dynamic approach may have each location methodoutput a location and a confidence level (say from 0-100%). Then insteadof going through the predefined arbitration process, the arbitrationcould just pick the location with the highest confidence level.

FIG. 15 illustrates an example of a context-aware module 1500 that maybe part of the location engine. The Context-Aware Location Module (CALM)is designed to utilize Context information to enhance the locationoutput and minimize the location errors such as room hopping. It alsoincludes logics to produce varies degree of smoothing of the input rawlocations based on use cases to enhance the response time. The contextinformation CALM utilizes include but not limited to application,location, device, and technology information.

The RTLS Technology integration could include for example BLE, ZigBee,and WIFI location decisions from different hardware inputs. The locationand role awareness module include multiple techniques to prevent certainlocation transition errors from occurring. For example, preventing theroom to room location transition that did not go through a connectinghallway; Most likely location change sequence within a hospital careunit such as Unit Entry to hallway to room. The sequence might bedifferent based on the role of the receiver. CALM is also applicationaware and is taking inputs from the applications. For example, in theED/OR application, the caregiver pre-assign a patient to a room. In thecase, the CALM will utilize the patient-room assignment information toenhance the location results.

The foregoing description, for purpose of explanation, has beendescribed with reference to specific embodiments. However, theillustrative discussions above are not intended to be exhaustive or tolimit the disclosure to the precise forms disclosed. Many modificationsand variations are possible in view of the above teachings. Theembodiments were chosen and described in order to best explain theprinciples of the disclosure and its practical applications, to therebyenable others skilled in the art to best utilize the disclosure andvarious embodiments with various modifications as are suited to theparticular use contemplated.

The system and method disclosed herein may be implemented via one ormore components, systems, servers, appliances, other subcomponents, ordistributed between such elements. When implemented as a system, suchsystems may include an/or involve, inter alia, components such assoftware modules, general-purpose CPU, RAM, etc. found ingeneral-purpose computers. In implementations where the innovationsreside on a server, such a server may include or involve components suchas CPU, RAM, etc., such as those found in general-purpose computers.

Additionally, the system and method herein may be achieved viaimplementations with disparate or entirely different software, hardwareand/or firmware components, beyond that set forth above. With regard tosuch other components (e.g., software, processing components, etc.)and/or computer-readable media associated with or embodying the presentinventions, for example, aspects of the innovations herein may beimplemented consistent with numerous general purpose or special purposecomputing systems or configurations. Various exemplary computingsystems, environments, and/or configurations that may be suitable foruse with the innovations herein may include, but are not limited to:software or other components within or embodied on personal computers,servers or server computing devices such as routing/connectivitycomponents, hand-held or laptop devices, multiprocessor systems,microprocessor-based systems, set top boxes, consumer electronicdevices, network PCs, other existing computer platforms, distributedcomputing environments that include one or more of the above systems ordevices, etc.

In some instances, aspects of the system and method may be achieved viaor performed by logic and/or logic instructions including programmodules, executed in association with such components or circuitry, forexample. In general, program modules may include routines, programs,objects, components, data structures, etc. that perform particular tasksor implement particular instructions herein. The inventions may also bepracticed in the context of distributed software, computer, or circuitsettings where circuitry is connected via communication buses, circuitryor links. In distributed settings, control/instructions may occur fromboth local and remote computer storage media including memory storagedevices.

The software, circuitry and components herein may also include and/orutilize one or more type of computer readable media. Computer readablemedia can be any available media that is resident on, associable with,or can be accessed by such circuits and/or computing components. By wayof example, and not limitation, computer readable media may comprisecomputer storage media and communication media. Computer storage mediaincludes volatile and nonvolatile, removable and non-removable mediaimplemented in any method or technology for storage of information suchas computer readable instructions, data structures, program modules orother data. Computer storage media includes, but is not limited to, RAM,ROM, EEPROM, flash memory or other memory technology, CD-ROM, digitalversatile disks (DVD) or other optical storage, magnetic tape, magneticdisk storage or other magnetic storage devices, or any other mediumwhich can be used to store the desired information and can accessed bycomputing component. Communication media may comprise computer readableinstructions, data structures, program modules and/or other components.Further, communication media may include wired media such as a wirednetwork or direct-wired connection, however no media of any such typeherein includes transitory media. Combinations of the any of the aboveare also included within the scope of computer readable media.

In the present description, the terms component, module, device, etc.may refer to any type of logical or functional software elements,circuits, blocks and/or processes that may be implemented in a varietyof ways. For example, the functions of various circuits and/or blockscan be combined with one another into any other number of modules. Eachmodule may even be implemented as a software program stored on atangible memory (e.g., random access memory, read only memory, CD-ROMmemory, hard disk drive, etc.) to be read by a central processing unitto implement the functions of the innovations herein. Or, the modulescan comprise programming instructions transmitted to a general purposecomputer or to processing/graphics hardware via a transmission carrierwave. Also, the modules can be implemented as hardware logic circuitryimplementing the functions encompassed by the innovations herein.Finally, the modules can be implemented using special purposeinstructions (SIMD instructions), field programmable logic arrays or anymix thereof which provides the desired level performance and cost.

As disclosed herein, features consistent with the disclosure may beimplemented via computer-hardware, software and/or firmware. Forexample, the systems and methods disclosed herein may be embodied invarious forms including, for example, a data processor, such as acomputer that also includes a database, digital electronic circuitry,firmware, software, or in combinations of them. Further, while some ofthe disclosed implementations describe specific hardware components,systems and methods consistent with the innovations herein may beimplemented with any combination of hardware, software and/or firmware.Moreover, the above-noted features and other aspects and principles ofthe innovations herein may be implemented in various environments. Suchenvironments and related applications may be specially constructed forperforming the various routines, processes and/or operations accordingto the invention or they may include a general-purpose computer orcomputing platform selectively activated or reconfigured by code toprovide the necessary functionality. The processes disclosed herein arenot inherently related to any particular computer, network,architecture, environment, or other apparatus, and may be implemented bya suitable combination of hardware, software, and/or firmware. Forexample, various general-purpose machines may be used with programswritten in accordance with teachings of the invention, or it may be moreconvenient to construct a specialized apparatus or system to perform therequired methods and techniques.

Aspects of the method and system described herein, such as the logic,may also be implemented as functionality programmed into any of avariety of circuitry, including programmable logic devices (“PLDs”),such as field programmable gate arrays (“FPGAs”), programmable arraylogic (“PAL”) devices, electrically programmable logic and memorydevices and standard cell-based devices, as well as application specificintegrated circuits. Some other possibilities for implementing aspectsinclude: memory devices, microcontrollers with memory (such as EEPROM),embedded microprocessors, firmware, software, etc. Furthermore, aspectsmay be embodied in microprocessors having software-based circuitemulation, discrete logic (sequential and combinatorial), customdevices, fuzzy (neural) logic, quantum devices, and hybrids of any ofthe above device types. The underlying device technologies may beprovided in a variety of component types, e.g., metal-oxidesemiconductor field-effect transistor (“MOSFET”) technologies likecomplementary metal-oxide semiconductor (“CMOS”), bipolar technologieslike emitter-coupled logic (“ECL”), polymer technologies (e.g.,silicon-conjugated polymer and metal-conjugated polymer-metalstructures), mixed analog and digital, and so on.

It should also be noted that the various logic and/or functionsdisclosed herein may be enabled using any number of combinations ofhardware, firmware, and/or as data and/or instructions embodied invarious machine-readable or computer-readable media, in terms of theirbehavioral, register transfer, logic component, and/or othercharacteristics. Computer-readable media in which such formatted dataand/or instructions may be embodied include, but are not limited to,non-volatile storage media in various forms (e.g., optical, magnetic orsemiconductor storage media) though again does not include transitorymedia. Unless the context clearly requires otherwise, throughout thedescription, the words “comprise,” “comprising,” and the like are to beconstrued in an inclusive sense as opposed to an exclusive or exhaustivesense; that is to say, in a sense of “including, but not limited to.”Words using the singular or plural number also include the plural orsingular number respectively. Additionally, the words “herein,”“hereunder,” “above,” “below,” and words of similar import refer to thisapplication as a whole and not to any particular portions of thisapplication. When the word “or” is used in reference to a list of two ormore items, that word covers all of the following interpretations of theword: any of the items in the list, all of the items in the list and anycombination of the items in the list.

Although certain presently preferred implementations of the inventionhave been specifically described herein, it will be apparent to thoseskilled in the art to which the invention pertains that variations andmodifications of the various implementations shown and described hereinmay be made without departing from the spirit and scope of theinvention. Accordingly, it is intended that the invention be limitedonly to the extent required by the applicable rules of law.

While the foregoing has been with reference to a particular embodimentof the disclosure, it will be appreciated by those skilled in the artthat changes in this embodiment may be made without departing from theprinciples and spirit of the disclosure, the scope of which is definedby the appended claims.

The invention claimed is:
 1. A location engine for locationdetermination, comprising: a processor and a memory; a floor selectionprocess executed by the processor that receives one or more signals ofone or more Bluetooth Low Energy (BLE) beacons received by a BLE enabledobject and determines a floor location of the BLE enabled object; alocation process executed by the processor that receives the one or moreBLE beacon signals and determines one or more locations of the BLEenabled object in response to the determined floor location of the BLEenabled object using a plurality of different location determiningprocesses, and wherein the location process uses a zone process todetermine the location of the BLE enabled object using the one or moreBLE beacon signals when the BLE enabled object determined floor locationis a significant area of use, uses a rapid room entry process todetermine the location of the BLE enabled object using the one or moreBLE beacon signals when the BLE enabled object is in the determinedfloor location and crosses a boundary, and uses a bed/bay locationprocess to determine the location of the BLE enabled object using theone or more BLE beacon signals when the BLE enabled object determinedfloor location is in a sub room location; and wherein the locationprocess automatically selects an output location result from the one ormore determined locations of the BLE enabled object.
 2. The engine ofclaim 1 further comprising a context-aware location component thatminimizes a location error of the output location result.
 3. The engineof claim 1, wherein the location process uses a way finder process todetermine the location of the BLE enabled object using the one or moreBLE beacon signals when navigating inside and outside a building.
 4. Theengine of claim 3, wherein the way finder process detects a proximity ofthe BLE enabled object to one of the one or more BLE beacons, determinesa proximity confidence and outputs a location results when the proximityconfidence exceeds a threshold.
 5. The engine of claim 1, wherein therapid room entry process detects a loudest BLE beacon, determines aconfidence level that the BLE enabled object crossed the boundary basedon the detected loudest BLE beacon and outputs a location results whenthe confidence level exceeds a threshold.
 6. The engine of claim 1,wherein the sub room location in one of a particular bed and a bay inthe determined floor location.
 7. The engine of claim 6, wherein thelocation process uses a real-time location system (RTLS) process todetermine the location of the BLE enabled object using the one or moreBLE beacon signals when a designated requirement for the location of theBLE enabled object exists.
 8. A method for determining location,comprising: receiving one or more signals from one or more Bluetooth LowEnergy (BLE) beacons by a BLE enabled object; determining a floorlocation of the BLE enabled object using the one or more BLE beaconsignals; determining one or more locations of BLE enabled object inresponse to the determined floor location of the BLE enabled objectusing a plurality of different location determining processes; andwherein determining the location further comprises using a real-timelocation system (RTLS) process to determine the location of the BLEenabled object using the one or more BLE beacon signals when adesignated requirement for the location of the BLE enabled objectexists, using a zone process to determine the location of the BLEenabled object using the one or more BLE beacon signals when thedetermined floor location of the BLE enabled object is a significantarea of use, using a fast room entry process to determine the locationof the BLE enabled object using the one or more BLE beacon signals whenthe BLE enabled object is in the determined floor location and crosses aroom boundary and using a bed/bay location process to determine thelocation of the BLE enabled object using the one or more BLE beaconsignals when the BLE enabled object determined floor location is in asub room location; and wherein the location process automaticallyselects an output location result from the one or more determinedlocations of the BLE enabled object.
 9. The method of claim 8, whereindetermining the location further comprises using a way finding processto determine the location of the BLE enabled object using the one ormore BLE beacon signals when navigating inside and outside a building.10. The method of claim 8 further comprising minimizing a location errorof the output location result.
 11. The method of claim 9, wherein theway finder process detects a proximity of the BLE enabled object to oneof the one or more BLE beacons, determines a proximity confidence andoutputs a location results when the proximity confidence exceeds athreshold.
 12. The method of claim 8, wherein using the rapid room entryprocess further comprises detecting a loudest BLE beacon, determining aconfidence level that the BLE enabled object crossed the boundary basedon the detected loudest BLE beacon and outputting a location resultswhen the confidence level exceeds a threshold.
 13. The method of claim8, wherein the sub room location in one of a particular bed and a bay inthe determined floor location.
 14. A system, comprising: one or moreBluetooth Low Energy (BLE) beacons that are fixed within a threedimensional space; a BLE enabled object having a BLE receiver to receivea signal from at least one BLE beacon; and a location engine having aprocessor that is configured to receive the at least one signal from theBLE beacon received by the BLE enabled object and determine one or morelocations of the BLE enabled object using a plurality of differentlocation determining processes by selecting, based on the at least onesignal from the BLE beacon, a zone process to determine the location ofthe BLE enabled object using the one or more BLE beacon signals when theBLE enabled object is located in a significant area of use, a fast roomentry process to determine the location of the BLE enabled object usingthe one or more BLE beacon signals when the BLE enabled object crosses aroom boundary and a bed/bay location process to determine the locationof the BLE enabled object using the one or more BLE beacon signals whenthe BLE enabled object is in a sub room location, and automaticallyselecting an output location result from the one or more determinedlocations of the BLE enabled object.
 15. The system of claim 14 furthercomprising a context-aware location component that minimizes a locationerror of the output location result.
 16. The system of claim 14, whereinthe location engine uses a way finder process to determine the locationof the BLE enabled object using the one or more BLE beacon signals whennavigating inside and outside a building.
 17. The system of claim 16,wherein the way finder process detects a proximity of the BLE enabledobject to one of the one or more BLE beacons, determines a proximityconfidence and outputs a location results when the proximity confidenceexceeds a threshold.
 18. The system of claim 15 wherein the rapid roomentry process detects a loudest BLE beacon, determines a confidencelevel that the BLE enabled object crossed the boundary based on thedetected loudest BLE beacon and outputs a location results when theconfidence level exceeds a threshold.
 19. The system of claim 14,wherein the sub room location in one of a particular bed and a bay inthe determined floor location.
 20. The system of claim 14, wherein thelocation engine uses a real-time location system (RTLS) process todetermine the location of the BLE enabled object using the one or moreBLE beacon signals when a designated requirement for the location of theBLE enabled object exists.